jmeter 您所在的位置:网站首页 jmeter 数组参数 jmeter

jmeter

2023-11-08 13:17| 来源: 网络整理| 查看: 265

   JSR是Java Specification Requests的缩写,意思是Java规范提案。JSR已成为Java界的一个重要标准.

   JSR223 控件允许执行 JSR223 脚本代码用于创建/更新所需的某些变量。

   JSR223 取样器 +groovy 脚本可大大提高性能的功能(编译),同时支持更多的脚本语言,其中包括 BeanShell 脚本,但是BeanShell 脚本编译效率更高。所以在编写脚本时不建议使用 BeanShell 取样器。

   使用JSR223组件首先要选择脚本语言。

   JSR223定义了可集成在Java平台上运行的一系列脚本语言。比如Groovy,JavaScript等.用的最多的是Groovy。Groovy 语法与Java 语言的语法很相似,Groovy 和 Java 语言的主要区别是:完成同样的任务所需的 Groovy 代码比 Java 代码更少。

  以下jsr233 preprocessor为例:

 

 

 

 

 

 

 

 

 

名词解释:

名称:显示的此取样器的描述性名称,可自定义

语言:要使用的JSR223脚本代码语言的类型。本例我们选择groovy。

参数:要传递到脚本文件或脚本的参数列表。多个参数以“;”分隔。

脚本文件:用于执行的脚本文件,若没有脚本文件,将覆盖脚本。

脚本:传递给JSR223执行的脚本,编写代码。

 

查看jmeter变量信息:

点击右上角三角按钮。调用logview窗口,来查看变量信息。

 

 

 

 

1、log

用法:写入日志文件。在编写测试计划脚本时进行调试非常有用。

日志有3个级别:info、warn和error。根据需要可以使用相应级别的日志。

注意:有错误级别的日志时,右上角的三角形状态将增加1。

 

 

2、OUT

用法:在控制台中打印消息。与log的区别是显示消息的位置不一样。

注意:在groovy语句下,也可不写OUT,只用println方法也可打印信息显示在控制台。

 

 

 

 

3、vars

   3.1   提供read(get)/write(put)方法去访问变量。

   变量包括:用户自定义、Regex提取器提取、JSON提取器从响应数据中提取等。

   读方法:vars.get(“VARIABLE_NAME”);

   写方法:vars.put(“VARIABLE_NAME”,“VALUE”);

写入后,可以访问role_id。

3.2  提供对象、数组的访问。

     方法:vars.getObject(“OBJECT_NAME”);

                vars.putObject(“OBJECT_NAME”, OBJECT_NAME);

    例子:jsr1:定义一个函数作为对象:

 

     jsr2:调用函数对象:

 

4、props

  用法:与vars相同,但用于JMeter属性。vars仅作用于当前线程。props作用于多线程。

  方法:props.get(“PROPERTIES_NAME”);

            props.put(“PROPERTIES_NAME”, PROPERTIES_NAME);

  例子:读取线程中属性值。

 

 

 

   读取属性值用法如下。当然,也可以采用函数${_setProperty(newprops,new_props)}方法来实现下面的语句。

 属性列表查看:

 

 设置完属性后,可用__P()或者__property()函数来访问。

 

 引用的属性值:

 

 props是Hastable的子类,因此我们可以使用put来存储Object、List、Map等。我们可以在一个线程组中创建一个函数,使用props.put()方法存储,然后在另一个线程组中使用props.get()调用它。(注意区分,vars使用的调用其他方法函数是vars.getObject()和vars.putObject())。

 

5、SampleResult

    用法:SampleResult帮助获取/设置运行后样本的值,例如:ResponseCode、ResponseMessage、StartTime、SampleLabel等。

    注意:如果脚本中直接使用SampleResult类型,需要先导入 org.apache.jmeter.samplers.SampleResult类。

 

    方法:主要包括get和put方法:

     SampleResult.getSampleLabel();     SampleResult.getStartTime();     SampleResult.getResponseCode()     SampleResult.getResponseMessage()     SampleResult.getPreviousResult() ·返回值:SampleResult,即取样器结果.作用:获取前一个取样器的结果

6、prev   用法:prev是内置对象,与SampleResult的作用相同,SampleResult中的所有方法都可以通过prev.来调用。运行后可以获取/设置样本的几乎所有信息。jmeter默认会初始化SampleResult类。

   prev对象可以直接引用SampleResult类中的方法,不需要导入。

  即下面两段代码效果一致。

import org.apache.jmeter.samplers.SampleResult; // 获取取样器结果 SampleResult result = ctx.getPreviousResult(); // 获取请求头 String RequestHeaders =result.getRequestHeaders(); // 获取请求头String RequestHeaders =prev.getRequestHeaders();

 

   方法get:   prev.getTime()   prev.getThreadName()   prev.getBytesAsLong()   prev.getURL()//获取url对象,转换成字符串需要prev.getUrlAsString();   prev.isSuccessful()   prev.getRequestHeaders() //获取请求头信息,String

 

   prev.getResponseHeaders()//获取返回信息头,String   prev.getResponseCode() //获取请求返回的code,string   prev.getResponseMessage() //获取响应信息,String   prev.getResponseDataAsString()//获取返回数据并转换为String字符串   prev.getResponseData()//获取返回数据并保存为字节数组对象.   注意:prev.getResponseDataAsString()与prev.getResponseData()都是获取Response Body的内容,只是返回的数据类型不同,prev.getResponseDataAsString()返回String字符串,prev.getResponseData()返回byte[]字节数组,使用时可根据实际需要对返回数据进行处理。

  方法set:

  与get方法相同,我们可以访问采样器的所有信息并根据需要设置值。  prev.setResponseCode();//设置返回代码  prev.setResponseMessage();//设置返回信息  prev.setSampleLable();//设置样品标签  prev.setSuccessful();//设置相应是否成功

7、sampler

 用法:允许访问当前采样器。这意味着我们可以在运行之前获取/设置采样器的一些信息,例如:域、路径、端口、协议、方法

 方法:get/set方法。

8、ctx

  用法:助于访问上下文。使用ctx我们可以获得一些信息,比如SampleResult或prev,但是它的级别更高。ctx 映射为 org.apache.jmeter.threads 的 JMeterContext 类 。由于JMeterContext 不具有线程安全性,故仅适用于在单线程中使用 。

  方法:

  getPreviousResult()//获取前一个取样器结果

 举例:

// 获取取样器结果,返回累心为SampleResult SampleResult result = ctx.getPreviousResult(); // 获取请求头 String RequestHeaders = result.getRequestHeaders(); // 获取响应头 String ResponseHeaders = result.getResponseHeaders(); // 获取响应码 String responseCode = result.getResponseCode(); // 获取响应数据 String responseData = result.getResponseDataAsString();

   getVariables()//获取JMeter当前线程的所有变量.

   getProperties()//获取所有的JMeter属性

   getCurrentSampler()//获取当前取样器对象

   getPreviousSampler()//获取前一个取样器对象

9、parameters

  用法:要传递给脚本文件或脚本的参数列表。您可以使用以下预定义变量访问在JSR223采样器/后预处理器中输入的值。

  parameters:返回在参数字段中定义的所有值。

  args:返回参数数组。

  args.length:返回参数字段中值的数目。

  args[n]: ith n=0,1,2…返回相应位置的值。注意:多个值必须用空格隔开。

  一般来说,Get请求用Parameters,Post请求用Body Data。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有